package com.xm.dao;

import com.xm.po.Goods;

import java.util.List;

/**
 * @author xie'lin'feng
 * @date 2020-08-06-19:09
 * @description 商品数据操作接口
 */
public interface GoodsDao {
    /**
     * 新增商品信息
     * @param goods
     * @return boolean
     */
    boolean add(Goods goods);

    /**
     * 按商品编号获取商品信息
     * @param goodSn
     * @return Goods
     */
    Goods getGoodsBySn(String goodSn);

    /**
     * 按商品id获取商品信息
     * @param goodsId
     * @return Goods
     */
    Goods getGoodsByGoodsId(Integer goodsId);

    /**
     * 获取所有销量前6的类型里面的商品列表
     * @param typeId
     * @return List<Goods>
     */
    List<Goods> getGoodsByTypeTop6(Integer typeId);

    /**
     * 首页关键字搜索
     * @param key 搜索关键字
     * @param orderby 排序条件
     * @param pageNo 页码
     * @param pageSize 分页数量
     * @return List<Goods>
     */
    List<Goods> getGoodsBySearchKey(String key,String orderby, Integer pageNo, Integer pageSize);

    /**
     * 首页关键字搜索结果数量
     * @param key 关键字
     * @return Integer
     */
    Integer getCount(String key);

    /**
     * 商品列表
     * @return List<Goods>
     */
    List<Goods> getAll();

    /**
     * 修改商品信息
     * @param goods
     * @return boolean
     */
    boolean update(Goods goods);

    /**
     *
     * @param key
     * @return
     */
    List<Goods> getGoodsByLike(String key);

    /**
     * 根据编号和名字、类型查询
     * @param id
     * @param name
     * @return
     */
    Goods queryOne(String id, String name, String type);

    /**
     * 根据编号和名字查询
     * @param id
     * @param name
     * @return
     */
    List<Goods> queryOne(String id, String name);

    /**
     * 根据编号查询商品
     * @param id
     * @return
     */
    Goods queryById(String id);

    /**
     * 根据名称查询商品
     * @param name
     * @return
     */
    Goods queryByName(String name);

    /**
     * 根据商品类型查询商品信息
     * @return
     */
    List<Goods> queryByGoodsType(String type);

    /**
     * 根据id修改isSale(下架)
     * @param goodsId
     * @return
     */
    boolean soldOut(Integer goodsId);
}
